#include <57header.h>

// 服务端
int main(int argc,char*argv[])
{
    char *port = "8080";
    char *ip = "192.168.106.129";

    int socket_fd = socket(AF_INET, SOCK_DGRAM, 0);

    struct sockaddr_in sockaddr ,    sockaddr_client ;
    sockaddr.sin_family = AF_INET;
    sockaddr.sin_port = htons(atoi(port));
    sockaddr.sin_addr.s_addr = inet_addr(ip);

    bind(socket_fd, (struct sockaddr *)&sockaddr, sizeof(sockaddr));

    fd_set set;
    FD_ZERO(&set);

    while(1){
        FD_SET(STDIN_FILENO, &set);
        FD_SET(socket_fd, &set);

        select(10, &set, NULL, NULL, NULL);

        if(FD_ISSET(STDIN_FILENO, &set)){
            // 说明标准输入输入了内容
            // 读标准输入-> 向对端发信息
            char buf[60] = {0};
            read(STDIN_FILENO, buf, sizeof(buf));
            sendto(socket_fd,buf,sizeof(buf), 0, (struct sockaddr *)&sockaddr_client,sizeof(sockaddr_client));
        }
        if(FD_ISSET(socket_fd, &set)){
            // 读取网络数据 -》 打印
            socklen_t len = sizeof(sockaddr_client);
            char buf[60] = {0};
            recvfrom(socket_fd, buf,sizeof(buf), 0, (struct sockaddr *)&sockaddr_client,  &len);
            printf("buf: %s \n", buf);
        }

    }



    close(socket_fd);
    return 0;
}

